<?php

    Class Usuario
    {
        var $idUsuario;
        var $username;
        var $activo;
        var $password;
        var $nombre;
        var $tipoUsuario;
        var $saldo;

        function  __construct()
        {
            $this->activo = true;
            $this->saldo = 0;
            $this->tipoUsuario = 2;
        }

        function getApuestas()
        {
            return ApuestasDAO::getByIdUsuario($this->idUsuario);
        }

        function getGanado()
        {
            return $this->getRemunerado() - $this->getApostado();
        }

        function getRemunerado()
        {
            // Suma del monto de las apuestas en que laApuesta.resultado = laApuesta.partido.resultado
            $apuestas = $this->getApuestas();
            $sumaRemunerado = 0;

            foreach ($apuestas as $apuesta)
            {
                $sumaRemunerado = $sumaRemunerado + $apuesta->getRemunerado();
            }

            return $sumaRemunerado;
        }
        
        function getApostado()
        {
            // Suma del monto de las apuestas
            return ApuestasDAO::getSumaMontos($this->idUsuario);
        }
        
        function getCargado()
        {
            // Suma del monto de las cargas
            return CargasDAO::getSumaMontos($this->idUsuario);
        }

        function getSaldo()
        {
            return $this->getCargado() - $this->getApostado() + $this->getRemunerado();
        }

        function getAcertadas6Meses()
        {
            $apuestas = ApuestasDAO::getUltimos6Meses($this->idUsuario);

            // O(2n) = O(n)

            $acertadas = array();

            foreach ($apuestas as $apuesta)
            {
                if ($apuesta->isAcertada() == true)
                    $acertadas[] = $apuesta;
            }

            return $acertadas;
        }

        function acertadas6MesesSort( $a, $b )
        {
           
            if      ($a->getAcertadas6Meses() == $b->getAcertadas6Meses()) return 0;

            else if ($a->getAcertadas6Meses() > $b->getAcertadas6Meses()) return -1;

            else if ($a->getAcertadas6Meses() < $b->getAcertadas6Meses()) return 1;

        }


    }

?>